/* Orbas:
 *     A open source CORBA Specification implementation from Huihoo.
 *
 * Copyright 2002-2003 Huihoo.org, Inc. All Right Reserved.
 *
 * This software is licensed under LGPL license.
 * See terms of license at gnu.org.
 *
 * For more information, visit:
 *
 * http://www.huihoo.org/orbas
 */



package org.huihoo.orbas.orb;

/**
 * <p>Description: </p>
 * A worker for client side.
 * <p>Copyright (c) 2002,2003</p>
 * <p>Company: <a href="http://www.huihoo.org/">huihoo.org</a></p>
 * @author <a href="http://www.huihoo.org/~mep">mep(mep@huihoo.com)</a>
 * @see <a href="http://www.huihoo.org/orbas">http://www.huihoo.org/orbas</a>
 * @version 1.0
 */


//import org.omg.IOP.*;
//import org.omg.GIOP.*;
import org.huihoo.orbas.orb.protocols.Transport;
import org.huihoo.orbas.orb.cdr.*;

public interface ClientWorker {

    public void invokeOneway(org.omg.CORBA.portable.OutputStream os);
    
    public CDRInputStream invoke(org.omg.CORBA.portable.OutputStream os)throws 
        org.omg.CORBA.portable.ApplicationException,
        org.omg.CORBA.portable.RemarshalException;
    
    public CDROutputStream createRequest(org.huihoo.orbas.orb.protocols.TargetAddress target,
                                         org.omg.GIOP.TargetAddress targetObject,
                                         String operation,
                                         boolean responseExpected);

    public CDROutputStream createLocateRequest(org.huihoo.orbas.orb.protocols.TargetAddress target);
}